package com.cencat.merchant.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 派单查询DTO
 * 
 * @author cencat
 * @since 2024
 */
@Data
@Schema(description = "派单查询条件")
public class DispatchQueryDTO {
    
    @Schema(description = "页码", example = "1")
    private Integer pageNum = 1;
    
    @Schema(description = "每页大小", example = "10")
    private Integer pageSize = 10;
    
    @Schema(description = "租户ID")
    private Long tenantId;
    
    @Schema(description = "派单编号")
    private String dispatchCode;
    
    @Schema(description = "订单ID")
    private Long orderId;
    
    @Schema(description = "订单编号")
    private String orderCode;
    
    @Schema(description = "司机ID")
    private Long driverId;
    
    @Schema(description = "司机姓名")
    private String driverName;
    
    @Schema(description = "司机手机号")
    private String driverPhone;
    
    @Schema(description = "商家ID")
    private Long merchantId;
    
    @Schema(description = "商家名称")
    private String merchantName;
    
    @Schema(description = "派单类型：1-手动派单，2-距离优先，3-评分优先，4-负载均衡，5-智能派单")
    private Integer dispatchType;
    
    @Schema(description = "派单状态：1-待接单，2-已接单，3-已拒绝，4-已取消，5-已完成")
    private Integer status;
    
    @Schema(description = "创建时间开始")
    private LocalDateTime createTimeStart;
    
    @Schema(description = "创建时间结束")
    private LocalDateTime createTimeEnd;
    
    @Schema(description = "接单时间开始")
    private LocalDateTime acceptTimeStart;
    
    @Schema(description = "接单时间结束")
    private LocalDateTime acceptTimeEnd;
    
    @Schema(description = "排序字段")
    private String orderBy;
    
    @Schema(description = "排序方向：ASC/DESC")
    private String orderDirection = "DESC";
}